home *** CD-ROM | disk | FTP | other *** search
- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
- | |
- * Gadutil.library version 37.0 *
- | |
- * Copyright © 1994-96 by Staffan Hämälä and P-O Yliniemi *
- | |
- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
-
- GadUtil is another gui library which main goal was to make it easy to create
- font sensitive user interfaces. The library has grown away from this main
- goal, and become another useful-routine-library.
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Distribution:
-
- 1) Distribution of this library is allowed in two ways:
- ¹) Only the .library file(s)
- ²) The complete distribution
-
- 2) Programmers of totally free software can use and distribute this
- library for free.
-
- 3) Programmers of Shareware, Licensware, commercial products and other
- programs that the programmer get any kind of profit from shall send
- a fully working (and registered) copy of the program and its docs to
- us. All larger updates of the program should also be sent to us.
-
- 4) Programmers of non-free software not covered by 1) and 2) (my Diskware
- concept belongs to this group) shall be treated as in 3) (a fully
- working and registered copy...).
-
- 5) All programs (except commercial products in some cases) must state
- that gadutil.library is used. This may be done in either the About
- requester or in the documentation, but best of all in both places.
-
- Demonstration programs for gadutil.library (that includes the full
- source) may be distributed without this note.
-
- Example for inclusion in About requester:
-
- "This program uses gadutil.library, which
- is Copyright © 1994-1996 by P-O Yliniemi
- and Staffan Hämälä."
-
- 6) All localized programs that uses this library should include the
- .ct file(s) to allow anyone to translate that program into their
- own language.
-
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Below is a list of some of the main functions covered by this library.
-
- * FAST (NO OR VERY SMALL DIFFERENCE AGAINST GADTOOLS) AND SMALL (ABOUT 10k).
- WRITTEN IN ASSEMBLY LANGUAGE. NO F*CKING 'C' or any other slow language!
-
- * Font adaptive. Use any of the system fonts and most other fonts for
- gadgets, texts and menus. All gadgets are placed relative to each
- other, but can be placed at absolute positions (needed for the first
- gadget).
-
- * No need to use GIMMEZEROZERO windows, as this is automatically handled
- by the library. If you specify a gadget position of 10,10 the gadget
- will be placed at 10,10 within the window's border.
-
- * Localized. It is really easy to localize all your (new) programs by
- using this library. Functions and macros for creating localized menus
- are supplied.
-
- * Both assembly and 'C' language support. This is one of the things that is
- missing in most of the other gui libraries. Some extra macros are defined
- for assembly language users, and will make the gadget and menu creating
- process even more easy.
-
- * All GadTools gadgets are supported. Some extra functions are provided
- for ListViews. BUTTON_KIND (and IMAGE_KIND) gadgets have some extra tags,
- including a toggle-select option.
-
- 4 extended gadget types are handled by the library:
-
- · FILE_KIND - gadget for selecting a file.
-
- · DRAWER_KIND - gadget for selecting a drawer. Most programs also
- use this gadget for file selection.
-
- · IMAGE_KIND - uses an intuition image for the gadget. Can use
- different images for selected and non-selected state.
-
- · BEVELBOX_KIND - gadtools bevelboxes, with some extensions. All
- gadtools bevelboxes are supported (even with v37).
- Extensions allows text to be placed above, in or below
- the upper line of the box. All kinds can be inverted.
-
- New for v36.52: Bevelbox text placement extended.
- 3 new placements available together with the old
- ones: centered, left adjusted & right adjusted.
-
- BFT_BUTTON - GT v37 BUTTON_KIND border
- BFT_RIDGE - GT v37 STRING_KIND border
- BFT_DROPBOX - GT v39 BBFT_ICONDROPBOX border
- BFT_HORIZBAR - A horizontal shadowed line
- BFT_VERTBAR - A vertical shadowed line
-
- This makes it a total of 100 bevel box types. The bevel
- boxes are treated as gadgets by the library, and you
- can obtain the structure for the bevelbox in the same
- way as you get the gadget pointer.
-
- · PROGRESS_KIND - Gadget that shows a progress indicator, like the ones
- that can be found in disk-copiers, formatting programs,
- install-scripts etc. It's very easy to set the gadget
- up, and then updating it via a library function.
-
- * A new OpenFont() (graphics.library and diskfont.library replacement).
- This function will open any font (from RAM, ROM or load it from disk).
-
- * Functions for listviews include adding nodes (memory for the string is
- allocated by the function), counting nodes, getting node pointers, clearing
- a listview, attach and detach lists, moving nodes up and down.
-
- * No need to open gadtools.library anymore, since all gadtools functions are
- provided through this library. Some (the most useable) functions from
- locale library are also provided by gadutil.
-
- * Many libraries are opened through gadutil.library, and these library bases
- are available for your own use (you don't have to open or close some libs).
-
- * All gadgets are created using tag lists. Every next gadget will use the
- previous gadgets values as defaults. Only one call to the gadget making
- routine is needed for every gadget list.
-
- * All gadgets can have their own hotkey. No extra work is needed by the
- programmer (only one extra tag).
-
- * Distributed with lots of examples, mostly in assembly language, but also
- in 'C'.
-
- * Other functions include:
-
- · Status change for toggle select buttons.
-
- · String change for STRING and TEXT_KIND gadgets.
-
- · Disable functions for gadgets that support the GA_Disabled tag.
-
- · Routines to set up a busy-pointer (available for both v37 and v39).
- These routines also blocks the input to the main window of the program.
-
- · Routine to check if the mouse pointer is within a gadgets box. Useful
- for mouse-position sensitive appwindows.
-
- · Bevelbox and window refreshing functions.
-
- * FAST (NO OR VERY SMALL DIFFERENCE AGAINST GADTOOLS) AND SMALL (ABOUT 10k).
- WRITTEN IN ASSEMBLY LANGUAGE. NO F*CKING 'C' or any other slow language!
-
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- A little of the history behind this program:
-
- Everybody who have tried to do a program with a nice GUI have almost certainly
- come across the problem; how to adjust the program based on the font that user
- has selected. It began as a little test program that should be able to adjust
- itself, but I soon realized that it wasn't that easy (as I had thought).
-
- I was almost finished with a working version of the program when I got some
- other programs/libraries that did something similar.
-
- The first program I got was MUI (Magical User Interface). It wasn't that bad,
- but it was big (170k) and it was slow.
-
- Another program was gadoutline.library, it wasn't exactly like I would want,
- and it was quite big (60k).
-
- Then, I came across the program that I liked the most: GadLayout 1.5. I
- changed one of my programs, so that it would use GadLayout, but it didn't
- work. I think that the problem was that my assembler didn't work with the
- object file for GadLayout (I had never tried that before).
-
- When GadLayout didn't work for me I continued with my own project, but I
- changed it a bit, because I liked the way GadLayout used tags. So I changed
- my program , so that it used tags instead of my own gadget structure. I also
- tried to make the tags work in a similar way as GadLayout's tags, I also used
- similar names for the tags (mainly so that I didn't need to change the program
- I had adjusted to GadLayout so much.
-
- After that the first beta version of the program was ready, a friend of mine,
- P-O, also started working on the project. We decided to make the program into
- a shared library, so that all programs could use it without having to include
- it in the executable file. The library was named GadUtil.
-
- After that moment the library has grown quite a lot, with new tags, new
- functions, a lot of enhancements and bugfixes. Now the library contains about
- 47 functions, and has quite a lot of tags. Another feature of the library is
- that it has some new gadget kinds, like a progress indicator, image gadgets,
- drawer gadgets etc. It is also very easy to add hotkeys and localization to
- your programs when using gadutil.library.
-
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Special thanx must go to:
-
- · Amiga Inc. / Commodore / Escom / Amiga Technologies / Viscorp
- - For making everything possible
-
- · Timothy J. Aston
- - For the inspiration, GadLayout 1.5 (a link library for 'C' programmers)
-
- · Nico Max
- - For forcing us to release gadutil a bit sooner than it was meant to.
-
- · Lukasz Szelag
- - For the first, and the three following bug reports
- - For ideas about some new constants for the include files
-
- · Morten Amundsen
- - For the suggestion of two new tags (so far)
-
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Per-Olof Yliniemi Staffan Hämälä
- Box 78 Pellovägen 268
- S-980 61 Tärendö S-957 93 Pello
- SWEDEN SWEDEN
-
- email: email:
- peoyli@pluggnet.se staham@pluggnet.se
-
- phone:
- +46-(0)978-20522
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-